特徵工程,建模,訓練,預測Part1
接下來是這次練習另一個重頭戲,接下來這三天會是各部份講解,第四天(Day16)會展示三部份的程式碼
今天會先來看怎麼處理:
1.性別文字轉為數字
2.定義基準模型與OOB測試模型
3.處理Fare缺值
1轉換類別標籤為數值,2沒上傳到kaggle前使用OOB看模型評分,3如何填補缺值
性別轉數字部分我們可以用map把female,male轉成1,0,astype在說這個1,0是數字格式
df_data['Sex'].map({'female' : 1, 'male' : 0}).astype('int')
要處理的文字資料都處理完後再次切分測試與訓練集,因為我們要上傳的格式是測試集預測的樣本跟預測結果
OOB全名是Out-Of-Bag,做為驗證資料集,隨機森林由一群決策樹組成,單顆決策樹並不會用所有的訓練資料,
每一次選一塊資料來訓練一顆決策樹時,剩下的資料並沒有被拿來訓練該顆決策樹,因此可以做為驗證資料,即Out-Of-Bag
但什麼是驗證資料集呢?
一般來說機器學習任務我們會遇到:
前兩個Kaggle有提供,第三個用來評價我們做得更動對模型好壞
但也有使用留出法,驗證:測試=80:20或70:30的方式,但較不嚴謹
還記得昨天提到Age,Cabin,Embarked有缺值,而Fare在測試資料集有個缺值需填補
缺失值個數訓練與測試集加總分別為:
Fare 1
Cabin 1014
Embarked 2
Age 263
看來問題最大的是船艙號碼,最小的是票價
票價缺失值不多,我們可以分組取中位數
我們會在Day16一次說明
這邊要思考一下這麼多缺值每個都需要填補,還是該針對對OOB有幫助的特徵填補?
又該怎麼填補才是好的?
特徵就只有看到的才重要,還是我們可以組合出更重要的特徵?
https://medium.com/@yulongtsai/https-medium-com-yulongtsai-titanic-top3-8e64741cc11f